package com.starlink.common.annotation.client.jd;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * {
 *     "routeProvinceName":"北京",
 *     "operateSiteId":"1595504",
 *     "orderId":"YD2022090808354",
 *     "operationTitle":"揽收",
 *     "routeDistrictName":"四环到五环之间",
 *     "categoryName":"已揽收",
 *     "operationTime":"2022-09-09 01:44:17",
 *     "routeAddress":"北京市丰台区新发地批发市场三农门东排21号",
 *     "routeCityName":"丰台区",
 *     "waybillCode":"JDVA15953261325",
 *     "state":"200001",
 *     "scanType":"-190",
 *     "category":420,
 *     "operateSite":"北京顺发专揽营业部",
 *     "operationRemark":"您的快件已由【北京顺发专揽营业部】揽收完成"
 * }
 *
 *  @Auther: zhouyuhang01
 *  @Date: 2024/5/21 15:40
 *  @Description: JdOperationResponse
 *  @Version 1.0.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JdOperationRequest {
    // 节点名称，长度1-20
    private String operationTitle;
    
    // 一级分类编码，长度1-10
    private Integer category;
    
    // 一级分类名称，长度1-20
    private String categoryName;
    
    // 签收类型；妥投节点返回，长度1-20
    private String signTypeName;
    
    // 节点编码，长度1-10
    private String state;
    
    // 路由详细地址；站点的地址，长度1-200
    private String routeAddress;
    
    // 路由 省，长度1-20
    private String routeProvinceName;
    
    // 路由 市，长度1-20
    private String routeCityName;
    
    // 路由 区，长度1-20
    private String routeDistrictName;
    
    // 路由 县，长度1-20
    private String routeStreetName;
    
    // 小哥名称，长度1-20
    private String operatorName;
    
    // 小哥电话；节点状态「200034-揽收任务分配」、节点状态「11000-配送员收货」会有此字段，字段长度：11
    private String operatorPhone;
    
    // 京东物流运单号，长度1-50
    private String waybillCode;
    
    // 商家订单号，长度1-50
    private String orderId;
    
    // 操作时间，格式：yyyy-MM-dd HH:mm:ss，字段长度：18
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date operationTime;
    
    // 节点描述，长度1-100
    private String operationRemark;
    
    // 机构编码，操作该全程跟踪的站点ID，长度1-10
    private String operateSiteId;
    
    // 机构编码名称，长度1-50
    private String operateSite;
    
    // 京东换单新运单号；在state=200020「换单打印」节点返回，长度1-50
    private String newWaybillCode;
    
    // 取消原因；在state=200052「终止揽收」节点返回，长度1-100
    private String cancelReason;
}
